Il est important de ne pas crer de noms de variables qui pourraient rentrer en conflit avec des instructions de Python.
Il est donc fortement dconseill (mme si c'est possible et que Python ne vous empchera pas de le faire) de crer une variable print = 5 par exemple.
La mme rgle s'applique aux modules !
Dans les prochaines parties, je vous prsente plusieurs modules, comme le module random.
Plusieurs tudiants ont donc crs un fichier random.py pour tester ce module.
Ce faisant, vous allez craser le module random de Python !
Quand vous allez faire import random, Python importera votre fichier au lieu du fichier random.py qui est contenu dans les sources de Python.
Vous aurez donc logiquement une erreur qui vous indique que les fonctions que vous souhaitez utiliser n'existent pas :
Traceback (most recent call last):
File "/Users/thibh/Documents/random.py", line 1, in <module>
import random
File "/Users/thibh/Documents/random.py", line 3, in <module>
nombre = random.randint(1, 5)
AttributeError: module 'random' has no attribute 'randint'L'erreur module 'random' has no attribute 'randint' signifie que Python n'a pas trouv la fonction randint l'intrieur du module random, ce qui est normal puisque je l'ai cras en crant le fichier random.py.
Faites donc bien attention cela.
Bien entendu, en tant que dbutant, vous ne pouvez pas connatre le nom de tous les modules.
Il se peut donc que vous criez par inadvertance un fichier qui a le mme nom qu'un module Python existant.
Restez attentif donc l'erreur ci-dessus en cas de problme.
Pour vous aider, voici une liste (non-exhaustive) des principaux modules de la librairie standard de Python.
Ce sont donc autant de noms qu'il faut viter :
abc aifc argparse array ast asynchat asyncio asyncore atexit audioop base64 bdb binascii binhex bisect builtins bz2 calendar cgi cgitb chunk cmath cmd code codecs codeop colorsys compileall configparser contextlib contextvars copy copyreg crypt csv ctypes dataclasses datetime decimal difflib dis distutils doctest dummy_threading email encodings ensurepip enum errno faulthandler fcntl filecmp fileinput fnmatch formatter fractions ftplib functools gc getopt getpass gettext glob grp gzip hashlib heapq hmac html http imaplib imghdr imp importlib inspect io ipaddress itertools json keyword lib2to3 linecache locale logging lzma mailbox mailcap marshal math mimetypes mmap modulefinder msilib msvcrt multiprocessing netrc nis nntplib numbers operator optparse os ossaudiodev parser pathlib pdb pickle pickletools pipes pkgutil platform plistlib poplib posix pprint profile pstats pty pwd py_compile pyclbr pydoc queue quopri random re readline reprlib resource rlcompleter runpy sched secrets select selectors shelve shlex shutil signal site smtpd smtplib sndhdr socket socketserver spwd sqlite3 ssl stat statistics string stringprep struct subprocess sunau symbol symtable sys sysconfig syslog tabnanny tarfile telnetlib tempfile termios test textwrap threading time timeit tkinter token tokenize trace traceback tracemalloc tty turtle turtledemo types typing unicodedata unittest urllib uu uuid venv warnings wave weakref webbrowser winreg winsound wsgiref xdrlib xml xmlrpc zipapp zipfile zipimport zlib